home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / gnu / progutil / stdwin.zoo / alfa / keymap.c < prev    next >
C/C++ Source or Header  |  1989-10-18  |  3KB  |  104 lines

  1. /* STDWIN -- KEY MAPPING TABLES. */
  2.  
  3. #include "alfa.h"
  4.  
  5. #define CTLX_MAP    1
  6. #define ESC_MAP        2
  7. #define PC_MAP        3
  8.  
  9. /* The key map is set up to provide shortcuts for the system menu. */
  10.  
  11. struct keymap _wprimap[256]= {
  12. #ifdef MSDOS
  13.     /* ^@ */ { 0, SECONDARY, PC_MAP, 0},    /* ^@ map */
  14. #else /* !MSDOS */
  15.     /* ^@ */ { 0, ORDINARY, 0, 0},
  16. #endif
  17.     /* ^A */ { 1, ORDINARY, 0, 0},
  18.     /* ^B */ { 2, SHORTCUT, 0, FIRST_CMD+WC_LEFT},
  19.     /* ^C */ { 3, SHORTCUT, 0, FIRST_CMD+WC_CANCEL},
  20.     /* ^D */ { 4, ORDINARY, 0, 0},
  21.     /* ^E */ { 5, ORDINARY, 0, 0},
  22.     /* ^F */ { 6, SHORTCUT, 0, FIRST_CMD+WC_RIGHT},
  23.     /* ^G */ { 7, SHORTCUT, 0, MOUSE_DOWN},
  24.     /* ^H */ { 8, SHORTCUT, 0, FIRST_CMD+WC_BACKSPACE},
  25.     /* ^I */ { 9, SHORTCUT, 0, FIRST_CMD+WC_TAB},
  26.     /* ^J */ {10, SHORTCUT, 0, FIRST_CMD+WC_RETURN},
  27.     /* ^K */ {11, ORDINARY, 0, 0},
  28.     /* ^L */ {12, SHORTCUT, 0, REDRAW_SCREEN},
  29.     /* ^M */ {13, SHORTCUT, 0, FIRST_CMD+WC_RETURN},
  30.     /* ^N */ {14, SHORTCUT, 0, FIRST_CMD+WC_DOWN},
  31.     /* ^O */ {15, ORDINARY, 0, 0},
  32.     /* ^P */ {16, SHORTCUT, 0, FIRST_CMD+WC_UP},
  33.     /* ^Q */ {17, ORDINARY, 0, 0},
  34.     /* ^R */ {18, SHORTCUT, 0, REDRAW_SCREEN},
  35.     /* ^S */ {19, ORDINARY, 0, 0},
  36.     /* ^T */ {20, ORDINARY, 0, 0},
  37.     /* ^U */ {21, ORDINARY, 0, 0},
  38.     /* ^V */ {22, SHORTCUT, 0, LITERAL_NEXT},
  39.     /* ^W */ {23, ORDINARY, 0, 0},
  40.     /* ^X */ {24, SECONDARY, CTLX_MAP, 0},    /* ^X map */
  41.     /* ^Y */ {25, ORDINARY, 0, 0},
  42.     /* ^Z */ {26, SHORTCUT, 0, SUSPEND_PROC},
  43.     /* ^[ */ {27, SECONDARY, ESC_MAP, 0},    /* ESC map */
  44.     /* ^\ */ {28, ORDINARY, 0, 0},
  45.     /* ^] */ {29, ORDINARY, 0, 0},
  46.     /* ^^ */ {30, ORDINARY, 0, 0},
  47.     /* ^_ */ {31, ORDINARY, 0, 0},
  48.     
  49.     /* Followed by 224 entries with type == ORDINARY. */
  50.     
  51.     /* NB: DEL (0177) should be mapped to BS_KEY. */
  52. };
  53.  
  54. static struct keymap dummy_map[]= {
  55.     {0, SENTINEL, 0, 0}
  56. };
  57.  
  58. static struct keymap ctlx_map[]= {
  59.     {'N', SHORTCUT, 0, NEXT_WIN},
  60.     {'P', SHORTCUT, 0, PREV_WIN},
  61.     {'D', SHORTCUT, 0, CLOSE_WIN},
  62.     {'\003', SHORTCUT, 0, CLOSE_WIN},    /* ^X-^C */
  63.     {0, SENTINEL, 0, 0}
  64. };
  65.  
  66. static struct keymap esc_map[]= {
  67.     {'\033', SHORTCUT, 0, MENU_CALL},    /* ESC-ESC */
  68.     {'\007', SHORTCUT, 0, MOUSE_UP},    /* ESC-^G */
  69.     {0, SENTINEL, 0, 0}
  70. };
  71.  
  72. #ifdef MSDOS
  73. static struct keymap pc_map[]= {
  74.     /* {0003, ORDINARY, 0, 0}, */ /* ^@ should map to true ^@ */
  75.     {0107, SHORTCUT, 0, FIRST_CMD+WC_HOME},
  76.     {0110, SHORTCUT, 0, FIRST_CMD+WC_UP},
  77.     {0113, SHORTCUT, 0, FIRST_CMD+WC_LEFT},
  78.     {0115, SHORTCUT, 0, FIRST_CMD+WC_RIGHT},
  79.     {0120, SHORTCUT, 0, FIRST_CMD+WC_DOWN},
  80.     {0111, SHORTCUT, 0, FIRST_CMD+WC_PAGE_UP},
  81.     {0117, SHORTCUT, 0, FIRST_CMD+WC_END},
  82.     {0121, SHORTCUT, 0, FIRST_CMD+WC_PAGE_DOWN},
  83.     {0123, SHORTCUT, 0, FIRST_CMD+WC_CLEAR},
  84.     {0163, SHORTCUT, 0, FIRST_CMD+WC_META_LEFT},
  85.     {0164, SHORTCUT, 0, FIRST_CMD+WC_META_RIGHT},
  86.     {0165, SHORTCUT, 0, FIRST_CMD+WC_META_END},
  87.     {0166, SHORTCUT, 0, FIRST_CMD+WC_META_PAGE_DOWN},
  88.     {0167, SHORTCUT, 0, FIRST_CMD+WC_META_HOME},
  89.     {0204, SHORTCUT, 0, FIRST_CMD+WC_META_PAGE_UP},
  90.     {0, SENTINEL, 0, 0}
  91. };
  92. #endif /* MSDOS */
  93.  
  94. static struct keymap *sec_map_list[SECMAPSIZE]= {
  95.     dummy_map,
  96.     ctlx_map,
  97.     esc_map,
  98. #ifdef MSDOS
  99.     pc_map,
  100. #endif
  101. };
  102.  
  103. struct keymap **_wsecmap= sec_map_list;
  104.